#define _CRT_SECURE_NO_WARNINGS 1
//memcpy模拟实现
//#include <stdio.h>
//#include <string.h>
//#include <assert.h>
//void* my_memcpy(void* dest, const void* src, size_t num)
//{
//    assert(dest != NULL);
//    assert(src != NULL);
//    void* ret = dest;
//    while (num--)
//    {
//        *(char*)dest = *(char*)src;//void*不能直接解引用和++，
//        //char* 一个字节一个字节的操作，在回调函数模拟实现qsort时用到
//        dest = (char*)dest + 1;
//        src = (char*)src + 1;
//    }
//    return ret;
//}
//int main()
//{
//    int arr1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
//    int arr2[10] = { 0 };
//    //memcpy(arr2, arr1, 20); //五个int元素，20个字节，可以sizeof(arr1)，全拷贝过去
//    my_memcpy(arr2, arr1, 20);
//    for (int i = 0; i < sizeof(arr2)/ sizeof(arr2[0]); i++)
//    {
//        printf("%d ", arr2[i]);
//    }
//    return 0;
//}

//memmove模拟实现
//#include <stdio.h>
//#include <string.h>
//#include <assert.h>
//void* my_memmove(void* dest, const void* src, size_t num)
//{
//    assert(dest != NULL);
//    assert(src != NULL);
//    void* ret = dest;
//    if(dest<src)
//    {
//        while (num--)
//        {
//            *(char*)dest = *(char*)src;//void*不能直接解引用和++，
//            dest = (char*)dest + 1;
//            src = (char*)src + 1;
//        }
//    }
//    else
//    {
//        while (num--)
//        {
//            *((char*)dest + num) = *((char*)src + num);
//        }
//    }
//    return ret;
//}
//int main()
//{
//    int arr1[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
//    //memmove(arr1+2, arr1, 20);
//    my_memmove(arr1, arr1+2, 20);
//    for (int i = 0; i < sizeof(arr1)/ sizeof(arr1[0]); i++)
//    {
//        printf("%d ", arr1[i]);
//    }
//    return 0;
//}

//memcmp
//int memcmp(const void* ptr1, const void* ptr2, size_t num);
//#include <stdio.h>
//#include <string.h>
//int main()
//{
//    float arr1[] = { 1.0, 2.0, 3.0, 4.0 };
//    float arr2[] = { 1.0, 3.0 };
//    int ret = memcmp(arr1, arr2, 8); // arr1是否比arr2大，比较8个字节
//    printf("%d\n", ret);
//    return 0;
//}

//mememove
//#include <stdio.h>
//#include <string.h>
//int main()
//{
//    int arr[10] = { 0 };
//    memset(arr, 1, 20); // 将前20个字节全部设置为1
//    return 0;
//}

// memset
#include <stdio.h>
#include <string.h>
int main()
{
    int arr[10] = { 0 };
    memset(arr, 1, 20); // 将前20个字节全部设置为1
    return 0;
}